# 构造一个基类“学生” ，包含“学习”方法。
#
# - 构造继承类“计算机专业学生”，重新实现方法“学习”，增加方法“睡觉”。
# - 构造继承类“金融专业学生”，重新实现方法“学习”，增加方法“睡觉”。
# - 构造一个函数fun，能够调用基类“学生”的方法
# - 构造不同类的对象，将其作为函数fun的参数，并在fun内调用其方法


# class Student():
#
#     def study(self):
#         print("学生为中华崛起而读书！")
#
# class Abc():
#     pass
#
# def fun(obj):
#     Student.study(obj)
#
# # s1 = Student()
# # Student.study(self=s1)
#
# my_obj = Abc()
# fun(my_obj)



# 按照要求完成
# - 用户输入姓名、年龄、性别
# - 实例化对象
# - 用户任意输入内容
#   - 如果输入的是属性名 打印属性值
#   - 如果输入的是方法名(callable(getattr(xiaoyu, "eat"))可以判断是否是方法) 调用方法
#   - 如果输入的什么都不是 不做操作
class User:
    def __init__(self,name,age,sex):
        self.name = name
        self.age  = age
        self.sex  = sex
    def eat(self):
        print("吃顿海鲜大餐。。。。")
    def sleep(self):
        print("早上睡个回笼觉。。。")



name = input("请输入姓名：")
age = input("请输入年龄：")
sex = input("请输入性别：")
use_obj = User(name, age, sex)
while True:
    value = input("请输入关键词：")
    if hasattr(use_obj, value):
        if callable(getattr(use_obj, value)):
            getattr(use_obj, value)()
        else:
            print(getattr(use_obj, value))
    else:
        print("输入有误请重新输入")